package one.bugu.android.demon.util;

import com.juefeng.android.framework.common.util.ToastUtils;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.tencent.mm.opensdk.openapi.IWXAPI;

public class WeChatUtils {
    /**
     * 单例对象
     */
    private static volatile WeChatUtils singleton = null;
    private WeChatUtils(){

    }
    /**
    * 获取单例对象
    * @return 单例对象
    */
    public static WeChatUtils getInstance(){
        if (singleton == null) {
            synchronized (WeChatUtils.class){
                if (singleton == null) {
                    singleton = new WeChatUtils();
                }
            }
        }
        return singleton;
    }

    /**
     * 登录微信
     *
     * @param api 微信服务api
     */
    public void loginWeixin(IWXAPI api) {
        // 判断是否安装了微信客户端
        if (!api.isWXAppInstalled()) {
            ToastUtils.custom("您还未安装微信客户端！");
            return;
        }
        // 发送授权登录信息，来获取code
        SendAuth.Req req = new SendAuth.Req();
        // 应用的作用域，获取个人信息
        req.scope = "snsapi_userinfo";
        /**
         * 用于保持请求和回调的状态，授权请求后原样带回给第三方
         * 为了防止csrf攻击（跨站请求伪造攻击），后期改为随机数加session来校验
         */
        req.state = "app_wechat";
        api.sendReq(req);

    }

}
